Skip to content

Commit

Permalink
feat: working composition for autopilot with gitops
Browse files Browse the repository at this point in the history
Signed-off-by: Michael Fornaro <20387402+xUnholy@users.noreply.github.com>
  • Loading branch information
xunholy committed Apr 22, 2023
1 parent 66b4748 commit 88912e3
Show file tree
Hide file tree
Showing 10 changed files with 144 additions and 120 deletions.
16 changes: 8 additions & 8 deletions .github/workflows/crossplane.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ name: Publish Crossplane Packages

on:
workflow_dispatch: {}
push:
branches:
- main
paths:
# Trigger workflow if workflow file is updated to validate it works appropriately
- .github/workflows/crossplane.yaml
# Trigger workflow if commit contains changes to configuration stored in the OCI artifact
- k8s/namespaces/base/crossplane-system/crossplane/packages/**
# push:
# branches:
# - main
# paths:
# # Trigger workflow if workflow file is updated to validate it works appropriately
# - .github/workflows/crossplane.yaml
# # Trigger workflow if commit contains changes to configuration stored in the OCI artifact
# - k8s/namespaces/base/crossplane-system/crossplane/packages/**

env:
GHCR_REPO: "ghcr.io/xunholy/crossplane/packages/"
Expand Down

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,22 @@
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: xclusters.gcp.xunholy.io
name: xgitopsclusters.gcp.xunholy.io
labels:
provider: gcp
gitops: flux
spec:
writeConnectionSecretsToNamespace: crossplane-system
compositeTypeRef:
apiVersion: xunholy.io/v1alpha1
kind: XCluster
kind: XGitOpsCluster
patchSets:
- name: metadata
patches:
- fromFieldPath: metadata.labels
- fromFieldPath: metadata.annotations
resources:
- name: autopilot
base:
- base:
apiVersion: container.gcp.upbound.io/v1beta1
kind: Cluster
spec:
Expand All @@ -30,4 +35,91 @@ spec:
- type: string
string:
fmt: "%s-cluster"
connectionDetails: []
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.writeConnectionSecretToRef.namespace
# The control plane supplies the 'kubeconfig' connection secret key, which
# is required by the XR.
connectionDetails:
- fromConnectionSecretKey: kubeconfig
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: ProviderConfig
spec:
credentials:
source: Secret
secretRef:
key: kubeconfig
identity:
type: GoogleApplicationCredentials
source: Secret
secretRef:
name: gcp-credentials
key: credentials.json
patches:
- fromFieldPath: spec.id
toFieldPath: metadata.name
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.credentials.secretRef.namespace
# This ProviderConfig uses the above GKE cluster's connection secret as
# its credentials secret.
- fromFieldPath: metadata.uid
toFieldPath: spec.credentials.secretRef.name
transforms:
- type: string
string:
fmt: "%s-cluster"
- fromFieldPath: spec.writeConnectionSecretToRef.namespace
toFieldPath: spec.identity.secretRef.namespace
readinessChecks:
- type: None
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
rollbackLimit: 3
forProvider:
namespace: flux-system
chart:
name: flux2
repository: https://fluxcd-community.github.io/helm-charts
version: "2.7.0"
values:
imageautomationcontroller:
create: false
imagereflectorcontroller:
create: false
patches:
- fromFieldPath: metadata.uid
toFieldPath: metadata.name
transforms:
- type: string
string:
fmt: "%s-flux2"
- fromFieldPath: spec.id
toFieldPath: spec.providerConfigRef.name
- base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
rollbackLimit: 3
forProvider:
namespace: flux-system
chart:
name: flux2-sync
repository: https://fluxcd-community.github.io/helm-charts
version: "1.4.0"
patches:
- fromFieldPath: metadata.uid
toFieldPath: metadata.name
transforms:
- type: string
string:
fmt: "%s-flux2-sync"
- fromFieldPath: spec.id
toFieldPath: spec.providerConfigRef.name
- fromFieldPath: spec.parameters.repository
toFieldPath: spec.forProvider.values.gitRepository.spec.url
- fromFieldPath: spec.parameters.branch
toFieldPath: spec.forProvider.values.gitRepository.spec.ref.branch
- fromFieldPath: spec.parameters.path
toFieldPath: spec.forProvider.values.kustomization.spec.path
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,17 @@
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: xgitops.xunholy.io
name: xgitopsclusters.xunholy.io
spec:
group: xunholy.io
names:
kind: XGitops
plural: xgitops
kind: XGitOpsCluster
plural: xgitopsclusters
claimNames:
kind: Cluster
plural: clusters
connectionSecretKeys: []
kind: GitOpsCluster
plural: gitopsclusters
connectionSecretKeys:
- kubeconfig
versions:
- name: v1alpha1
served: true
Expand All @@ -23,18 +24,25 @@ spec:
spec:
type: object
properties:
id:
type: string
description: ID of this Cluster that other objects will use to refer to it.
parameters:
type: object
properties:
repository:
description: The repository that will be synced via GitOps
type: string
default: "https://github.com/xunholy/k8s-gitops"
environment:
description: The environment (e.g., production)
branch:
type: string
default: production
description: The Git reference to checkout and monitor for changes
default: "main"
path:
type: string
description: Path to the directory containing the kustomization.yaml
required:
- repository
- path
required:
- parameters
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,13 @@ apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-gcp
namespace: crossplane-system
spec:
package: xpkg.upbound.io/upbound/provider-gcp:v0.30.0
---
# yaml-language-server: $schema=https://kubernetes-schemas.raspbernetes.com/pkg.crossplane.io/provider_v1.json
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-helm
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-helm:v0.14.0
12 changes: 8 additions & 4 deletions k8s/namespaces/base/crossplane-system/examples/example.yaml
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
---
apiVersion: xunholy.io/v1alpha1
kind: Cluster
kind: GitOpsCluster
metadata:
name: example
name: gitops-cluster
namespace: crossplane-system
spec:
id: raspbernetes
parameters:
releaseChannel: "REGULAR"
repository: https://github.com/xunholy/k8s-gitops
branch: main
path: "k8s/clusters/cluster-0"
compositionSelector:
matchLabels:
provider: gcp
gitops: flux
writeConnectionSecretToRef:
name: cluster-conn
name: gitops-cluster-connection
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,11 @@ apiVersion: gcp.upbound.io/v1beta1
kind: ProviderConfig
metadata:
name: default
namespace: crossplane-system
spec:
projectID: raspbernetes
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: gcp-creds
key: key
name: gcp-credentials
key: credentials.json
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
apiVersion: v1
kind: Secret
metadata:
name: gcp-creds
name: gcp-credentials
namespace: crossplane-system
data:
key: ENC[AES256_GCM,data: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,iv:/h5g+ILQJsZRIkVHWjIuqPab1gp7kDDnKAbTtLr2aU8=,tag:QOeRInKgWm6uoyMflICkEg==,type:str]
credentials.json: ENC[AES256_GCM,data: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,iv:t1gpIVKhtYs4ZM16qEkTp9qB/Ohv7n+hduIVGqGQ+ao=,tag:mIG7/lQPFra1Ma7nnKu56A==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age: []
lastmodified: "2023-04-21T08:25:44Z"
mac: ENC[AES256_GCM,data:j29o0M7oKE1v+xX/+fAL3RM3thwzWXZkvIiNC16QnM4x24ETuB/QLGjDX9NjY0gux6pbveHtx7Px1aC5iK3e6bS9UBD5Ak2SEgtX5xdILBHwNUQAeeqAjh1KKnU5npW71QhPTfj64wOxjrjeSmxu31i25aCMPKTdKO421mRSf8A=,iv:wL/cCLo7xH/Bt69BjBDlvnssv/oPE4O52UvCMVTNQok=,tag:S+QzDwRAwABhHr3RxSxS5Q==,type:str]
lastmodified: "2023-04-22T06:26:44Z"
mac: ENC[AES256_GCM,data:tr4t5tM/bNawgMuwfW/nGExyifGBKREtL0yDsmftmLJ47DquJe/+pwiXbmOqpAy2TUIKysKT8YyCZR8L7KA5sXDInWBxukJlYyXG3a7u6xQyGepqpPv0vPfkKeSBvXdUhmC8emsn1OJ7Gu0rxQ6UFbRWER4j8I6SnH9mTf3LBNI=,iv:Lnt7XgwsDxJWvMkiW0RI6MwGHxUClXG5NNjvRWz65Ec=,tag:TrUUgj7YUevYW8KlvWsniQ==,type:str]
pgp:
- created_at: "2022-02-16T08:26:32Z"
enc: |
Expand Down

0 comments on commit 88912e3

Please sign in to comment.