{"id":15769800,"url":"https://github.com/sylus/drupal-operator","last_synced_at":"2025-04-21T03:32:35.220Z","repository":{"id":92513354,"uuid":"163841994","full_name":"sylus/drupal-operator","owner":"sylus","description":"Drupal operator for Kubernetes (In Development)","archived":false,"fork":false,"pushed_at":"2020-10-12T17:06:57.000Z","size":87,"stargazers_count":11,"open_issues_count":0,"forks_count":1,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-11T14:26:16.686Z","etag":null,"topics":["drupal","kubebuilder","kubernetes","operator"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sylus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-02T13:05:40.000Z","updated_at":"2023-03-23T21:34:54.000Z","dependencies_parsed_at":"2023-08-21T04:30:56.823Z","dependency_job_id":null,"html_url":"https://github.com/sylus/drupal-operator","commit_stats":{"total_commits":9,"total_committers":1,"mean_commits":9.0,"dds":0.0,"last_synced_commit":"b5dc40afab8e618fdd486203d1e2a230dce54d42"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylus%2Fdrupal-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylus%2Fdrupal-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylus%2Fdrupal-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sylus%2Fdrupal-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sylus","download_url":"https://codeload.github.com/sylus/drupal-operator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249991174,"owners_count":21357216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["drupal","kubebuilder","kubernetes","operator"],"created_at":"2024-10-04T14:06:20.076Z","updated_at":"2025-04-21T03:32:34.855Z","avatar_url":"https://github.com/sylus.png","language":"Go","readme":"# Drupal Operator\n\nDrupal Operator generated via KubeBuilder to enable managing multiple Drupal installs.\n\n\u003e Note: This is vastly outdated and needs a complete refactoring.\n\n## Goals\n\nThe main goals of the operator are:\n\n1. Ability to deploy Drupal sites on top of Kubernetes\n2. Provide best practices for application lifecycle\n3. Facilitate proper devops (backups, monitoring and high-availability)\n\n\u003e Project is currently under active development.\n\n## Components\n\n1. Drupal Operator (this project)\n2. Drupal Container Image (https://github.com/drupalwxt/site-wxt)\n\n## Installation of Controller (CRD)\n\n```sh\nhelm repo add sylus https://sylus.github.io/charts\nhelm --name drupal-operator install sylus/drupal-operator\n```\n\n## Usage\n\nFirst we need to install the `mysql-operator` as well as default role bindings.\n\n```sh\n# Create our namespace\nkubectl create ns mysql-operator\n\n# Install via Helm\nhelm install --name mysql-operator -f values.yaml --namespace mysql-operator .\n\n# Install RoleBindings for appropriate namespace\ncat \u003c\u003cEOF | kubectl create -f -\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1beta1\nmetadata:\n  name: mysql-agent\n  namespace: default\nroleRef:\n  apiGroup: rbac.authorization.k8s.io\n  kind: ClusterRole\n  name: mysql-agent\nsubjects:\n- kind: ServiceAccount\n  name: mysql-agent\n  namespace: default\nEOF\n```\n\nNext we can start to utilize the Drupal operator!\n\n```sh\n\n# Deploy the operator (helm chart still being tested)\nmake deploy\n\n# Leverage our example spec\nkubectl apply -f config/samples/drupal_v1beta1_droplet.yaml\n\n# Create initial database\nkubectl run mysql-client --image=mysql:5.7 -it --rm --restart=Never -- mysql -h mysite-mysql -uroot -pmy-super-secret-pass -e 'create database drupal;'\n\n# Run Drush and install our site\nexport POD_NAME=$(kubectl get pods --namespace default -l \"app.kubernetes.io/component=drupal\" -o jsonpath=\"{.items[0].metadata.name}\")\nkubectl exec -it $POD_NAME -n default -- drush si wxt \\\n    --sites-subdir=default \\\n    --account-name=admin \\\n    --account-pass=Drupal@2019 \\\n    --site-mail=admin@example.com \\\n    --site-name=\"Drupal Install Profile (WxT)\" \\\n    install_configure_form.update_status_module='array(FALSE,FALSE)' \\\n    --yes\n```\n\n## Acknowledgements\n\nGenerated via [KubeBuilder](https://github.com/kubernetes-sigs/kubebuilder) with additional code and lessons learned from the [WordPress Operator](https://github.com/presslabs/wordpress-operator/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsylus%2Fdrupal-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsylus%2Fdrupal-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsylus%2Fdrupal-operator/lists"}