forked from berserker/microblog
commit
7233569474
176 changed files with 1813 additions and 1070 deletions
@ -0,0 +1,138 @@ |
|||||||
|
# This is a GitHub workflow defining a set of jobs with a set of steps. |
||||||
|
# ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions |
||||||
|
# |
||||||
|
name: Test chart |
||||||
|
|
||||||
|
on: |
||||||
|
pull_request: |
||||||
|
paths: |
||||||
|
- "chart/**" |
||||||
|
- "!**.md" |
||||||
|
- ".github/workflows/test-chart.yml" |
||||||
|
push: |
||||||
|
paths: |
||||||
|
- "chart/**" |
||||||
|
- "!**.md" |
||||||
|
- ".github/workflows/test-chart.yml" |
||||||
|
branches-ignore: |
||||||
|
- "dependabot/**" |
||||||
|
workflow_dispatch: |
||||||
|
|
||||||
|
permissions: |
||||||
|
contents: read |
||||||
|
|
||||||
|
defaults: |
||||||
|
run: |
||||||
|
working-directory: chart |
||||||
|
|
||||||
|
jobs: |
||||||
|
lint-templates: |
||||||
|
runs-on: ubuntu-22.04 |
||||||
|
|
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v3 |
||||||
|
- uses: actions/setup-python@v4 |
||||||
|
with: |
||||||
|
python-version: "3.x" |
||||||
|
|
||||||
|
- name: Install dependencies (yamllint) |
||||||
|
run: pip install yamllint |
||||||
|
|
||||||
|
- run: helm dependency update |
||||||
|
|
||||||
|
- name: helm lint |
||||||
|
run: | |
||||||
|
helm lint . \ |
||||||
|
--values dev-values.yaml |
||||||
|
|
||||||
|
- name: helm template |
||||||
|
run: | |
||||||
|
helm template . \ |
||||||
|
--values dev-values.yaml \ |
||||||
|
--output-dir rendered-templates |
||||||
|
|
||||||
|
- name: yamllint (only on templates we manage) |
||||||
|
run: | |
||||||
|
rm -rf rendered-templates/mastodon/charts |
||||||
|
|
||||||
|
yamllint rendered-templates \ |
||||||
|
--config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}" |
||||||
|
|
||||||
|
# This job helps us validate that rendered templates are valid k8s resources |
||||||
|
# against a k8s api-server, via "helm template --validate", but also that a |
||||||
|
# basic configuration can be used to successfully startup mastodon. |
||||||
|
# |
||||||
|
test-install: |
||||||
|
runs-on: ubuntu-22.04 |
||||||
|
timeout-minutes: 15 |
||||||
|
|
||||||
|
strategy: |
||||||
|
fail-fast: false |
||||||
|
matrix: |
||||||
|
include: |
||||||
|
# k3s-channel reference: https://update.k3s.io/v1-release/channels |
||||||
|
- k3s-channel: latest |
||||||
|
- k3s-channel: stable |
||||||
|
|
||||||
|
# This represents the oldest configuration we test against. |
||||||
|
# |
||||||
|
# The k8s version chosen is based on the oldest still supported k8s |
||||||
|
# version among two managed k8s services, GKE, EKS. |
||||||
|
# - GKE: https://endoflife.date/google-kubernetes-engine |
||||||
|
# - EKS: https://endoflife.date/amazon-eks |
||||||
|
# |
||||||
|
# The helm client's version can influence what helper functions is |
||||||
|
# available for use in the templates, currently we need v3.6.0 or |
||||||
|
# higher. |
||||||
|
# |
||||||
|
- k3s-channel: v1.21 |
||||||
|
helm-version: v3.6.0 |
||||||
|
|
||||||
|
steps: |
||||||
|
- uses: actions/checkout@v3 |
||||||
|
|
||||||
|
# This action starts a k8s cluster with NetworkPolicy enforcement and |
||||||
|
# installs both kubectl and helm. |
||||||
|
# |
||||||
|
# ref: https://github.com/jupyterhub/action-k3s-helm#readme |
||||||
|
# |
||||||
|
- uses: jupyterhub/action-k3s-helm@v3 |
||||||
|
with: |
||||||
|
k3s-channel: ${{ matrix.k3s-channel }} |
||||||
|
helm-version: ${{ matrix.helm-version }} |
||||||
|
metrics-enabled: false |
||||||
|
traefik-enabled: false |
||||||
|
docker-enabled: false |
||||||
|
|
||||||
|
- run: helm dependency update |
||||||
|
|
||||||
|
# Validate rendered helm templates against the k8s api-server |
||||||
|
- name: helm template --validate |
||||||
|
run: | |
||||||
|
helm template --validate mastodon . \ |
||||||
|
--values dev-values.yaml |
||||||
|
|
||||||
|
- name: helm install |
||||||
|
run: | |
||||||
|
helm install mastodon . \ |
||||||
|
--values dev-values.yaml \ |
||||||
|
--timeout 10m |
||||||
|
|
||||||
|
# This actions provides a report about the state of the k8s cluster, |
||||||
|
# providing logs etc on anything that has failed and workloads marked as |
||||||
|
# important. |
||||||
|
# |
||||||
|
# ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme |
||||||
|
# |
||||||
|
- name: Kubernetes namespace report |
||||||
|
uses: jupyterhub/action-k8s-namespace-report@v1 |
||||||
|
if: always() |
||||||
|
with: |
||||||
|
important-workloads: >- |
||||||
|
deploy/mastodon-sidekiq |
||||||
|
deploy/mastodon-streaming |
||||||
|
deploy/mastodon-web |
||||||
|
job/mastodon-assets-precompile |
||||||
|
job/mastodon-chewy-upgrade |
||||||
|
job/mastodon-create-admin |
||||||
|
job/mastodon-db-migrate |
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@ |
|||||||
# frozen_string_literal: true |
# frozen_string_literal: true |
||||||
|
|
||||||
class Api::V1::Filters::KeywordsController < Api::BaseController |
class Api::V2::Filters::KeywordsController < Api::BaseController |
||||||
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] |
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] |
||||||
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] |
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] |
||||||
before_action :require_user! |
before_action :require_user! |
@ -1,6 +1,6 @@ |
|||||||
# frozen_string_literal: true |
# frozen_string_literal: true |
||||||
|
|
||||||
class Api::V1::Filters::StatusesController < Api::BaseController |
class Api::V2::Filters::StatusesController < Api::BaseController |
||||||
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] |
before_action -> { doorkeeper_authorize! :read, :'read:filters' }, only: [:index, :show] |
||||||
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] |
before_action -> { doorkeeper_authorize! :write, :'write:filters' }, except: [:index, :show] |
||||||
before_action :require_user! |
before_action :require_user! |
@ -1,40 +0,0 @@ |
|||||||
import React from 'react'; |
|
||||||
import PropTypes from 'prop-types'; |
|
||||||
|
|
||||||
export default class Permalink extends React.PureComponent { |
|
||||||
|
|
||||||
static contextTypes = { |
|
||||||
router: PropTypes.object, |
|
||||||
}; |
|
||||||
|
|
||||||
static propTypes = { |
|
||||||
className: PropTypes.string, |
|
||||||
href: PropTypes.string.isRequired, |
|
||||||
to: PropTypes.string.isRequired, |
|
||||||
children: PropTypes.node, |
|
||||||
onInterceptClick: PropTypes.func, |
|
||||||
}; |
|
||||||
|
|
||||||
handleClick = e => { |
|
||||||
if (this.props.onInterceptClick && this.props.onInterceptClick()) { |
|
||||||
e.preventDefault(); |
|
||||||
return; |
|
||||||
} |
|
||||||
|
|
||||||
if (this.context.router && e.button === 0 && !(e.ctrlKey || e.metaKey)) { |
|
||||||
e.preventDefault(); |
|
||||||
this.context.router.history.push(this.props.to); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
render () { |
|
||||||
const { href, children, className, onInterceptClick, ...other } = this.props; |
|
||||||
|
|
||||||
return ( |
|
||||||
<a target='_blank' href={href} onClick={this.handleClick} {...other} className={`permalink${className ? ' ' + className : ''}`}> |
|
||||||
{children} |
|
||||||
</a> |
|
||||||
); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,25 @@ |
|||||||
|
# Chart values used for testing the Helm chart. |
||||||
|
# |
||||||
|
mastodon: |
||||||
|
secrets: |
||||||
|
secret_key_base: dummy-secret_key_base |
||||||
|
otp_secret: dummy-otp_secret |
||||||
|
vapid: |
||||||
|
private_key: dummy-vapid-private_key |
||||||
|
public_key: dummy-vapid-public_key |
||||||
|
|
||||||
|
# ref: https://github.com/bitnami/charts/tree/main/bitnami/redis#parameters |
||||||
|
redis: |
||||||
|
replica: |
||||||
|
replicaCount: 1 |
||||||
|
|
||||||
|
# ref: https://github.com/bitnami/charts/tree/main/bitnami/elasticsearch#parameters |
||||||
|
elasticsearch: |
||||||
|
master: |
||||||
|
replicaCount: 1 |
||||||
|
data: |
||||||
|
replicaCount: 1 |
||||||
|
coordinating: |
||||||
|
replicaCount: 1 |
||||||
|
ingest: |
||||||
|
replicaCount: 1 |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue